'''
给你一个字符串 s 和一个字符 c ，且 c 是 s 中出现过的字符。

返回一个整数数组 answer ，其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。

两个下标 i 和 j 之间的 距离 为 abs(i - j) ，其中 abs 是绝对值函数。

##1、先找出 s 中所有的 c 并记录其下标
##2、在变量字符串 取 abs 
'''
def shortestToChar(self, s, c):
    ## 1、找出 所有位置的 c 
    positions = []
    for i in range(len(s)):
        if s[i] == c:
            positions.append(i)
            
    ## 2、对每个位置 找出离他最近的c
    answer = []
    for j in range(len(s)):
        min_dist = float('inf')
        for pos in positions:
            dist = abs(j-pos)
            min_dist = min(dist,min_dist)
        answer.append(min_dist)
    return answer
    
### 更简短的写法
def shortestTochar(s,c):
    indices = [i for i ,ch in enumerate(s) if ch==c]   ## 这里只要 字符 等于 c 的 所有下标 用到了 enumerate()
    return [min(abs(i-j) for j in indices for i in range(len(s)))]